import UIKit

//
@available(iOS 2.0, *)
extension QKC where AA :UILabel {
		// default is nil
    open func text_qk_s(_ text:  String? ) -> QKC<AA,YY,ZZ, String? >{
		return link(next: text).then_QK { $0.value.text = text }
	}
    open func text_qk_g() -> QKC<AA,YY,ZZ, String? >{
		 self +^ self.value.text
	}

		// default is nil (system font 17 plain)
    open func font_qk_s(_ font:  UIFont ) -> QKC<AA,YY,ZZ, UIFont >{
		return link(next: font).then_QK { $0.value.font = font }
	}
    open func font_qk_g() -> QKC<AA,YY,ZZ, UIFont >{
		 self +^ self.value.font
	}

		// default is labelColor
    open func textColor_qk_s(_ textColor:  UIColor ) -> QKC<AA,YY,ZZ, UIColor >{
		return link(next: textColor).then_QK { $0.value.textColor = textColor }
	}
    open func textColor_qk_g() -> QKC<AA,YY,ZZ, UIColor >{
		 self +^ self.value.textColor
	}

		// default is nil (no shadow)
    open func shadowColor_qk_s(_ shadowColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: shadowColor).then_QK { $0.value.shadowColor = shadowColor }
	}
    open func shadowColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.shadowColor
	}

		// default is CGSizeMake(0, -1) -- a top shadow
    open func shadowOffset_qk_s(_ shadowOffset:  CGSize ) -> QKC<AA,YY,ZZ, CGSize >{
		return link(next: shadowOffset).then_QK { $0.value.shadowOffset = shadowOffset }
	}
    open func shadowOffset_qk_g() -> QKC<AA,YY,ZZ, CGSize >{
		 self +^ self.value.shadowOffset
	}

		// default is NSTextAlignmentNatural (before iOS 9, the default was NSTextAlignmentLeft)
    open func textAlignment_qk_s(_ textAlignment:  NSTextAlignment ) -> QKC<AA,YY,ZZ, NSTextAlignment >{
		return link(next: textAlignment).then_QK { $0.value.textAlignment = textAlignment }
	}
    open func textAlignment_qk_g() -> QKC<AA,YY,ZZ, NSTextAlignment >{
		 self +^ self.value.textAlignment
	}

		// default is NSLineBreakByTruncatingTail. used for single and multiple lines of text
    open func lineBreakMode_qk_s(_ lineBreakMode:  NSLineBreakMode ) -> QKC<AA,YY,ZZ, NSLineBreakMode >{
		return link(next: lineBreakMode).then_QK { $0.value.lineBreakMode = lineBreakMode }
	}
    open func lineBreakMode_qk_g() -> QKC<AA,YY,ZZ, NSLineBreakMode >{
		 self +^ self.value.lineBreakMode
	}

	// the underlying attributed string drawn by the label, if set, the label ignores the properties above.
		// default is nil
    @available(iOS 6.0, *)
     open func attributedText_qk_s(_ attributedText:  NSAttributedString? ) -> QKC<AA,YY,ZZ, NSAttributedString? >{
		return link(next: attributedText).then_QK { $0.value.attributedText = attributedText }
	}
    @available(iOS 6.0, *)
     open func attributedText_qk_g() -> QKC<AA,YY,ZZ, NSAttributedString? >{
		 self +^ self.value.attributedText
	}

	// the 'highlight' property is used by subclasses for such things as pressed states. it's useful to make it part of the base class as a user property
		// default is nil
    open func highlightedTextColor_qk_s(_ highlightedTextColor:  UIColor? ) -> QKC<AA,YY,ZZ, UIColor? >{
		return link(next: highlightedTextColor).then_QK { $0.value.highlightedTextColor = highlightedTextColor }
	}
    open func highlightedTextColor_qk_g() -> QKC<AA,YY,ZZ, UIColor? >{
		 self +^ self.value.highlightedTextColor
	}

		// default is NO
    open func isHighlighted_qk_s(_ isHighlighted:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isHighlighted).then_QK { $0.value.isHighlighted = isHighlighted }
	}
    open func isHighlighted_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isHighlighted
	}

		// default is NO
    open func isUserInteractionEnabled_qk_s(_ isUserInteractionEnabled:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isUserInteractionEnabled).then_QK { $0.value.isUserInteractionEnabled = isUserInteractionEnabled }
	}
    open func isUserInteractionEnabled_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isUserInteractionEnabled
	}

		// default is YES. changes how the label is drawn
    open func isEnabled_qk_s(_ isEnabled:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: isEnabled).then_QK { $0.value.isEnabled = isEnabled }
	}
    open func isEnabled_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.isEnabled
	}

	// truncated using the line break mode.
    open func numberOfLines_qk_s(_ numberOfLines:  Int) -> QKC<AA,YY,ZZ, Int>{
		return link(next: numberOfLines).then_QK { $0.value.numberOfLines = numberOfLines }
	}
    open func numberOfLines_qk_g() -> QKC<AA,YY,ZZ, Int>{
		 self +^ self.value.numberOfLines
	}

	// and to specify how the text baseline moves when it needs to shrink the font.
		// default is NO
    open func adjustsFontSizeToFitWidth_qk_s(_ adjustsFontSizeToFitWidth:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: adjustsFontSizeToFitWidth).then_QK { $0.value.adjustsFontSizeToFitWidth = adjustsFontSizeToFitWidth }
	}
    open func adjustsFontSizeToFitWidth_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.adjustsFontSizeToFitWidth
	}

		// default is UIBaselineAdjustmentAlignBaselines
    open func baselineAdjustment_qk_s(_ baselineAdjustment:  UIBaselineAdjustment ) -> QKC<AA,YY,ZZ, UIBaselineAdjustment >{
		return link(next: baselineAdjustment).then_QK { $0.value.baselineAdjustment = baselineAdjustment }
	}
    open func baselineAdjustment_qk_g() -> QKC<AA,YY,ZZ, UIBaselineAdjustment >{
		 self +^ self.value.baselineAdjustment
	}

		// default is 0.0
    @available(iOS 6.0, *)
    open func minimumScaleFactor_qk_s(_ minimumScaleFactor:  CGFloat ) -> QKC<AA,YY,ZZ, CGFloat >{
		return link(next: minimumScaleFactor).then_QK { $0.value.minimumScaleFactor = minimumScaleFactor }
	}
    @available(iOS 6.0, *)
    open func minimumScaleFactor_qk_g() -> QKC<AA,YY,ZZ, CGFloat >{
		 self +^ self.value.minimumScaleFactor
	}

	// The maximum amount of tightening performed is determined by the system based on contexts such as font, line width, etc.
		// default is NO
    @available(iOS 9.0, *)
    open func allowsDefaultTighteningForTruncation_qk_s(_ allowsDefaultTighteningForTruncation:  Bool ) -> QKC<AA,YY,ZZ, Bool >{
		return link(next: allowsDefaultTighteningForTruncation).then_QK { $0.value.allowsDefaultTighteningForTruncation = allowsDefaultTighteningForTruncation }
	}
    @available(iOS 9.0, *)
    open func allowsDefaultTighteningForTruncation_qk_g() -> QKC<AA,YY,ZZ, Bool >{
		 self +^ self.value.allowsDefaultTighteningForTruncation
	}

	// If nonzero, this is used when determining -intrinsicContentSize for multiline labels
    @available(iOS 6.0, *)
    open func preferredMaxLayoutWidth_qk_s(_ preferredMaxLayoutWidth:  CGFloat) -> QKC<AA,YY,ZZ, CGFloat>{
		return link(next: preferredMaxLayoutWidth).then_QK { $0.value.preferredMaxLayoutWidth = preferredMaxLayoutWidth }
	}
    @available(iOS 6.0, *)
    open func preferredMaxLayoutWidth_qk_g() -> QKC<AA,YY,ZZ, CGFloat>{
		 self +^ self.value.preferredMaxLayoutWidth
	}

	// label has default content mode of UIViewContentModeRedraw
    open func textRect_qk_f(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> QKC<AA,YY,ZZ,CGRect>{
		 self +^ self.value.textRect(forBounds:bounds, limitedToNumberOfLines:numberOfLines)
	}

    open func drawText_qk_f(in rect: CGRect) -> QKC<AA,YY,ZZ, CGRect>{
		 self +^ self.value.drawText(in:rect) +^ rect
	}

}

